package com.muyu.payment.service;

import com.muyu.payment.domain.PaymentIndent;
import com.muyu.payment.domain.PaymentOrder;

/**
 * 支付数据同步服务接口
 *
 * @author muyu
 * @date 2025-09-18
 */
public interface PaymentDataSyncService {

    /**
     * 同步支付订单到支付记录表
     * @param paymentIndent 支付订单
     * @return 是否成功
     */
    boolean syncIndentToOrder(PaymentIndent paymentIndent);

    /**
     * 同步支付订单到支付记录表（带支付类型）
     * @param paymentIndent 支付订单
     * @param payType 支付类型
     * @return 是否成功
     */
    boolean syncIndentToOrder(PaymentIndent paymentIndent, Long payType);

    /**
     * 同步支付订单到支付记录表（带支付类型和支付时间）
     * @param paymentIndent 支付订单
     * @param payType 支付类型
     * @param payTime 支付时间
     * @param thirdTradeNo 第三方交易号
     * @return 是否成功
     */
    boolean syncIndentToOrder(PaymentIndent paymentIndent, Long payType, java.util.Date payTime, String thirdTradeNo);

    /**
     * 检查并修复数据一致性
     * @param orderNo 订单号
     * @return 是否修复成功
     */
    boolean checkAndFixDataConsistency(String orderNo);

    /**
     * 批量检查并修复数据一致性
     * @return 修复的订单数量
     */
    int batchCheckAndFixDataConsistency();
}